388A - Fox and Box Accumulation - CodeForces Solution


greedy sortings *1400

Please click on ads to support us..

Python Code:

from __future__ import division, print_function
import math
import sys
import os
from io import BytesIO, IOBase
from collections import deque, Counter, OrderedDict, defaultdict
import heapq
from bisect import bisect_left,bisect_right

BUFSIZE = 8192


class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = "x" in file.mode or "r" not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b"\n") + (not b)
			ptr = self.buffer.tell()
			self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			self.buffer.truncate(0), self.buffer.seek(0)


class IOWrapper(IOBase):
	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode("ascii"))
		self.read = lambda: self.buffer.read().decode("ascii")
		self.readline = lambda: self.buffer.readline().decode("ascii")


def print(*args, **kwargs):
	
	sep, file = kwargs.pop("sep", " "), kwargs.pop("file", sys.stdout)
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop("end", "\n"))
	if kwargs.pop("flush", False):
		file.flush()


if sys.version_info[0] < 3:
	sys.stdin, sys.stdout = FastIO(sys.stdin), FastIO(sys.stdout)
else:
	sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)

input = lambda: sys.stdin.readline().rstrip("\r\n")

def inp():
    return(int(input()))
def inps():
    return input().strip()
def inlt():
    return(list(map(int,input().split())))
def insr():
    s = input().strip()
    return(list(s[:len(s)]))
def invr():
    return(map(int,input().split()))

from types import GeneratorType
def bootstrap(f,stack=[]):
    def wrappedfunc(*args,**kwargs):
        if stack:
            return f(*args,**kwargs)
        else:
            to=f(*args,**kwargs)
            while True:
                if type(to) is GeneratorType:
                    stack.append(to)
                    to=next(to)
                else:
                    stack.pop()
                    if not stack:
                        break
                    to = stack[-1].send(to)
            return to
    return wrappedfunc

n=inp()
l=inlt()
l.sort()
g=Counter(l)
d=defaultdict(lambda:0)
ans=0
for i in range(n):
    for j in range(n):
        if d[j]<=l[i]:
            d[j]+=1
            if d[j]==1:
                ans+=1
            break
print(ans)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define maxn          100007
#define pb            push_back
#define sz            size()
#define loop(i,n)     for(int i=0;i<n;i++)
#define loop1(i,n)    for(int i=1;i<=n;i++)
#define sc(n)         scanf("%d",&n)
#define sc2(n,m)      scanf("%lld %lld",&n,&m)
#define sc3(a,b,c)    scanf("%d %d %d",&a,&b,&c);
#define pf(n)         printf("%d",n)
#define pcase(a,b)    printf("Case %d: %lld\n",a,b);
#define ll            long long
#define ull           unsigned ll
#define all(v)        v.begin(),v.end()
#define pii           pair<int,int>
#define pll           pair<ll,ll>
#define pdd           pair<double,double>
#define vi            vector<int>
#define inf           1e18+4
#define ff            first
#define ss            second
#define ret           return
#define mod           1000000007
#define pi            acos(-1.0)
#define MP            make_pair
#define fileout       freopen("output.txt","w",stdout);
#define mem(a,n)      memset(a,n,sizeof a);
#define fastIO        ios_base::sync_with_stdio(false);cin.tie(NULL);
#define tc            int tc,caseNo=0;cin >> tc;while(tc--)
#define endl          '\n'

/*
int fx[] = {+1,+1,+2,+2,-1,-1,-2,-2};
int fy[] = {+2,-2,+1,-1,+2,-2,+1,-1};


*/



int main() 
{
    ll n,m,x,y,k,arr[2*maxn];
    cin>> n;
    vi v(101,0);
    for(int i=0;i<n;i++) {
        cin >> arr[i];
    }
    sort(arr,arr+n);
    int ans = 0;
    while(1) {
        int siz = 0;
        for(int i=0;i<n;i++) {
            if(arr[i]>=siz and !v[i]) {
                siz++;
                v[i] = 1;
            }
        }
        if(siz>0) ans++;
        else break;
    }
    cout << ans <<endl;
}


Comments

Submit
0 Comments
More Questions

180C - Letter
151A - Soft Drinking
1352A - Sum of Round Numbers
281A - Word Capitalization
1646A - Square Counting
266A - Stones on the Table
61A - Ultra-Fast Mathematician
148A - Insomnia cure
1650A - Deletions of Two Adjacent Letters
1512A - Spy Detected
282A - Bit++
69A - Young Physicist
1651A - Playoff
734A - Anton and Danik
1300B - Assigning to Classes
1647A - Madoka and Math Dad
710A - King Moves
1131A - Sea Battle
118A - String Task
236A - Boy or Girl
271A - Beautiful Year
520B - Two Buttons
231A - Team
479C - Exams
1030A - In Search of an Easy Problem
158A - Next Round
71A - Way Too Long Words
160A - Twins
1A - Theatre Square
1614B - Divan and a New Project